#if !defined(IFRAMEWORK_H)
#define IFRAMEWORK_H

#include <d3d11.h>
#include <rt/tstring.h>

namespace MandelShader
{
	class IFramework
	{
	public:
		virtual ~IFramework() { }

		virtual ID3D11RenderTargetView *GetRenderTargetView() = 0;
		virtual ID3D11DepthStencilView *GetDepthStencilView() = 0;
		virtual rt::tstring FindMedia(rt::tstring const &fileName) = 0;
		virtual HRESULT CompileFromFile(rt::tstring const &file, DWORD shaderFlags,
			std::string const &entryPoint, std::string const &profile,
			ID3D10Blob **shader, ID3D10Blob **errors) = 0;
		virtual void DisplayCompileErrorMessage(char const *message) = 0;
	};
}

#endif
